﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;

public class Filmes
{

    public int codigoFilme;
    public String nomeActor;
    public String genero;
    public String nomeRealizador;
    public String nomeFilme;
    public String trailer;
    public int classificacaoTotal;
    public double classificacao;
    public int votos;
    public int visitas;
    public DateTime dataEstreia;
    public String anoFilme;
    public String descricao;
    public String duracao;
    public String imagem;
    public DBFilmes dbFilmes;

    public Filmes(System.Data.Odbc.OdbcConnection con)
    {
        dbFilmes = new DBFilmes(con);
    }
    

    public bool verificaUnicidadeFilme(String nome,String ano){
        return dbFilmes.verificaUnicidadeFilme(nome,ano);
    }


    public void guardarNomeAnoFilme(String nome, String ano)
    {
        nomeFilme = nome;
        anoFilme = ano;
        dbFilmes.guardarNomeAnoFilme( nome,  ano);
    }
    public void inserirDadosFilme()
    {
        dbFilmes.inserirDadosFilme(nomeFilme, anoFilme, nomeRealizador, nomeActor, genero, trailer, dataEstreia, descricao, duracao, imagem);
       
    }
    public void removerFilme()
     {
        dbFilmes.removerFilme(nomeFilme,anoFilme);
     }
     
     public void obterDadosFilme()
     {
        dbFilmes.obterDadosFilme(nomeFilme,anoFilme,this);
     }
     
    public Hashtable pedirListaFilmes()
    {
        return dbFilmes.obterListaFilmes();
    }
    public Hashtable pesquisarPalavra(String chave)
    {
        return dbFilmes.pesquisarPalavra(chave);
    }
    public void pedirDadosFilme(String filme, String ano)
    {
        nomeFilme = filme;
        anoFilme = ano;
        this.obterDadosFilme();
    }
    public ArrayList pedirLocalidades(String filme, String ano)
    {
        nomeFilme = filme;
        anoFilme = ano;
        return dbFilmes.obterLocalidades(nomeFilme,anoFilme);

    }
    public double pedirClassificacao(String filme, String ano)
    {
        classificacaoTotal = dbFilmes.obterClassificacao(filme, ano);
        votos = dbFilmes.obterNumVotos(filme, ano);
        classificacao = (double) classificacaoTotal / votos;
        return classificacao;
    }

    public void novoVoto(String filme, String ano, int voto)
    {
        dbFilmes.novoVoto( filme,  ano,  voto);
    }
    public void alterarVoto(String filme, String ano, int voto_antigo, int novo_voto)
    { 
        dbFilmes.alterarVoto( filme,  ano,  voto_antigo,  novo_voto);
    }
     
}
